package com.bt.controller.admin;

import com.bt.dto.SysRoleDTO;
import com.bt.dto.SysRolePageQueryDTO;
import com.bt.result.PageResult;
import com.bt.result.Result;
import com.bt.service.SysRoleService;
import com.bt.vo.SysRoleVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @Description TODO
 * @Author itheima
 * @Date 2023-05-02 21:16
 */
@Slf4j
@Api(tags = "角色管理接口")
@RestController
@RequestMapping("/sys_role")
public class SysRoleController {

    @Autowired
    private SysRoleService sysRoleService;

    /**
     * 角色列表分页
     *
     * @return
     */
    @ApiOperation("角色列表分页接口")
    @GetMapping("/list")
    public Result list(SysRolePageQueryDTO sysRolePageQueryDTO) {
        log.info("角色列表分页{}", sysRolePageQueryDTO);
        PageResult pageResult = sysRoleService.list(sysRolePageQueryDTO);
        return Result.success(pageResult);
    }

    /**
     * 角色添加
     *
     * @param sysRoleDTO
     * @return
     */
    @PostMapping("/add")
    public Result add(@RequestBody SysRoleDTO sysRoleDTO) {
        log.info(" 角色添加{}", sysRoleDTO);
        sysRoleService.add(sysRoleDTO);
        return Result.success();
    }

    /**
     * 角色详情
     *
     * @return
     */
    @ApiOperation("角色详情接口")
    @GetMapping("/rowInfo")
    public Result rowInfo(String id) {
        log.info("角色详情{}", id);
        SysRoleVO sysRoleVO = sysRoleService.rowInfo(id);
        return Result.success(sysRoleVO);
    }

    /**
     * 查询角色列表全部
     * @return
     */
    @ApiOperation("查询角色列表全部接口")
    @GetMapping("/allData")
    public Result allData(){
       log.info("查询角色列表全部");
        List<SysRoleVO> sysRoleVOList =  sysRoleService.allData();
        return Result.success(sysRoleVOList);
    }

    /**
     * 角色删除
     * @param id
     * @return
     */
    @GetMapping("/del")
    public Result del(String id){
        log.info("角色删除{}",id);
        sysRoleService.del(id);
        return Result.success();
    }

    /**
     * 角色修改
     * @return
     */
    @PostMapping("/update")
    public Result update(@RequestBody SysRoleDTO sysRoleDTO){
           log.info("角色修改{}",sysRoleDTO);
           sysRoleService.update(sysRoleDTO);
           return Result.success();
    }


}
